#pragma once

#include "e2d/core/Entity.h"
#include "e2d/core/render/SkinnedMeshRender.h"
#include "e2d/core/render/FixedMeshRender.h"
#include "e2d/core/render/MaterialView.h"
#include "e2d/core/render/LightSource.h"
#include "e2d/core/render/CameraView.h"
#include "e2d/core/trans/TransformNode.h"

namespace e2d
{
	struct  Utils
	{
		static std::shared_ptr<e2d::Entity> AddChildFromFile(e2d::Entity* entity, const fxcc::File& file);

		static bool LoadFromModel(e2d::Entity* entity, const fxcc::File& file);

		static bool LoadFromNode(e2d::Entity* entity, e2d::Entity* rootEntity, const e2d::Node* node, const e2d::ModelScene* scene, std::vector<e2d::SkinnedMeshRender*>& skinnedMeshRenders);
	};
}